/* 
 * @titulo: objetos.js
 */


$(document).ready(function(){
  $("body").delegate(".objform #cancel",{
    click: function(e){
      e.preventDefault();
      $("#dialogo").dialog("close");
    }
  })
  
  $("body").delegate(".objform input",{
    keyup: function(){
      obj_validaTecla(this)
      
    },
    click: function(){
      obj_validaTecla(this)
    },
    blur: function(){
      obj_validaTecla(this)
    }
  });
  $("a.img_lupa").fancybox();
})

/*
 *controla la gestión de ajax de la entrada nueva o actualización de datos de las noticias  
*/
function ajax_noticia(pid){
  $("#dialogo").load("objetos/noticias.php?id_grid="+pid,
    function(){
      $("#dialogo").dialog({
        close: function (){objeto_cancela(pid)},
        title: "GESTOR DE INFORMACIÓN",
        heigh: 400,
        width: 820,
        position: 'top',
        modal: true,
        autoOpen: false
      }),
      obj_refresca();
      obj_nombre_validar('#noticias input');
      $('.objform').ajaxForm({
        beforeSubmit: function(){
          if (!obj_nombre_validar('#noticias input')){
            dialogo_notificar('Los campos coloreados indican que existen datos mal o estos son incompletos.');
            return false;
          }else{
            return true;
          }
        },
        dataType: 'json' ,
        success: function(datos){
          if (datos.error){
              dialogo_notificar(datos.msj)
          }else{
            var_global= datos.id; //id de la base de datos devuelto por ajax no quitar pues deja de funcionar
            $('#listado').trigger( 'reloadGrid' );
            setTimeout("jQuery('#listado').jqGrid('setSelection', var_global)", 250);
          }
          $("#dialogo").dialog("destroy");
        },
        error: (function(obj,error, execp){
          alert('Error ajax: '+ execp + ' | '+ error + busca_error_ajax(obj));
        })
      }),
      $("#obj_fecha_creacion, #obj_fecha_borrar, #obj_fecha_publicacion, #obj_fecha_nopublicacion").keypress(function(e){
        e.preventDefault();
      }),
      $("#obj_fecha_borrar").datepicker({
        numberOfMonths: [2,3],
        stepMonths: 6,
        minDate: $('#obj_fecha_nopublicacion').val()
      }),
      $("#obj_fecha_publicacion").datepicker({
        numberOfMonths: [2,3],
        stepMonths: 6,
        minDate: $('#obj_fecha_creacion').val(),
        maxDate: $('#obj_fecha_nopublicacion').val()
      }),
      $("#obj_fecha_nopublicacion").datepicker({
        numberOfMonths: [2,3],
        stepMonths: 6,
        minDate: $('#obj_fecha_publicacion').val(),
        maxDate: $('#obj_fecha_borrado').val()
      }),
      //cambios en el selector de tipos de objetos si no es congreso regional regional
      $("#obj_tipo_selec").change(function(){ 
        if ($("#obj_tipo_selec option:selected").val()=='4'){
          $("form.objform #acordeon_regional").show();
        }else{
          $("form.objform #acordeon_regional").hide();
        }
      })
      $("#obj_borrador").click(function(){
        if ($(this).attr('checked')){
          $("#obj_aprobado").removeAttr('checked');
          $("#obj_aprobado").attr('disabled','true');
        }else{
          $("#obj_aprobado").removeAttr('disabled');          
        };
      })
    });
}

/*==============================================================================
 *Subrutinas para la gestión de los eventos
 *==============================================================================
*/

function obj_perfil(valor){
  switch (valor) {
    case '2':
      $("#obj_perfil_socios").attr('checked','0n');
      break;
    case '1':
      $("#obj_perfil_registrados").attr('checked','0n');
      break;
    default:
      $("#obj_perfil_todos").attr('checked','0n');     
  }   
}

function obj_aprobado(borrador,aprobado){
  if (borrador == 1){
    $("#obj_borrador").attr('checked','on');
    $("#obj_aprobado").attr('disabled','true');
  }else{
    if (aprobado == 1){
       $("#obj_aprobado").attr('checked','0n');
    }
  }
}

//function obj_seleccion(id_seleccion, tipo){
//  $(id_seleccion).val( tipo ).attr('selected',true);  
//}

function ajax_noticia_borra(id_seleccionado){
  $.ajax({
    type: 'POST',
    url: 'objetos/noticias-borrar-ajax.php',
    data: "id_objeto=" + id_seleccionado,
    dataType: 'json',
    success: (function(datos){
      if (datos.error){
        alert(datos.msj);
      }else{
        //alert(datos.msj);
        $('#refresh_listado').click();
      }
    }),
    error: (function(obj,error, execp){
      alert('Error ajax: '+ execp + ' | '+ error + busca_error_ajax(obj));
    })
  });
}
function objeto_cancela(pid){
   $('#resultado').load('objetos/objeto_cancel.php?id='+pid+'&proteccion='+session.proteccion);
}
function obj_nombre_validar(pselector){
  var flag= true;
  $(pselector).each(function(i){
    if(typeof($(this).attr('id')) != "undefined"){
      flag =  flag && obj_validaTecla(this);
    }
  });
  return flag;
}

function obj_validaTecla(pthis){
  var dato= new Array;
  var name = $(pthis).attr("id");
  if (typeof(name)== 'undefined'){
    return true;
  }
  var valor= $(pthis).val();
  var largo= valor.length;
  var flag = false;
  if (name.search('obj_link_nombre') > -1){
    name= 'obj_link_nombre';
  }else{
    if (name.search('obj_link') > -1){
      name= 'obj_link';
    }
  }
  switch (name) {
    case 'obj_titulo':
    case 'obj_link_nombre':
      flag= (/^\s{0,}[\S]{1,}.{0,}$/.test(valor));
      break;
    case 'obj_link':
     flag= (/^\s{0,}http[s]?:\/{2}[\w\&\%\#\?\=]+([\/.-]?[\w\&\%\#\?\=\/]+)*\s{0,}$/.test(valor));
     break;
    default:
      flag= true;
      break;
  }
  (flag) ? $(pthis).css("background-color","#fff") : $(pthis).css("background-color","#fBB");
  return (flag);
}
  
function obj_refresca(){
  $( "#acordeon" ).accordion({
    autoHeight: false,
    collapsible: true,
    active: -1
  });
  if ($("#obj_tipo_selec option:selected").val()=='4'){
    $("form.objform #acordeon_regional").show();
  }else{
    $("form.objform #acordeon_regional").hide();
  }
}

